Skip to content

Conversation

@ben-schwen
Copy link
Member

@ben-schwen ben-schwen commented Oct 28, 2025

Adds arithmetic for GForce as demanded in #3815 but does not add support for blocks in j like d[, j={x<-x; .(min(x))}, by=y].

@codecov
Copy link

codecov bot commented Oct 28, 2025

Codecov Report

❌ Patch coverage is 99.22780% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 99.01%. Comparing base (a325db9) to head (54af162).
⚠️ Report is 1 commits behind head on master.

Files with missing lines Patch % Lines
R/data.table.R 99.57% 1 Missing ⚠️
R/test.data.table.R 95.23% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #7401      +/-   ##
==========================================
- Coverage   99.02%   99.01%   -0.02%     
==========================================
  Files          87       87              
  Lines       16803    16887      +84     
==========================================
+ Hits        16640    16720      +80     
- Misses        163      167       +4     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@github-actions
Copy link

github-actions bot commented Oct 28, 2025

  • HEAD=modular_gforce slower P<0.001 for memrecycle regression fixed in #5463
    Comparison Plot

Generated via commit 54af162

Download link for the artifact containing the test results: ↓ atime-results.zip

Task Duration
R setup and installing dependencies 2 minutes and 56 seconds
Installing different package versions 45 seconds
Running and plotting the test cases 5 minutes and 14 seconds

@ben-schwen ben-schwen marked this pull request as ready for review November 2, 2025 18:01
@ben-schwen
Copy link
Member Author

I'm also not sure about moving the tests to optimize.Rraw since this feels kind of wrong and not needed after introducing the new levels/optimization parameter to test.

@ben-schwen ben-schwen mentioned this pull request Nov 2, 2025
Copy link
Member

@MichaelChirico MichaelChirico left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, I think last round of review here. Looking great!

ben-schwen and others added 2 commits January 13, 2026 23:21
Co-authored-by: Michael Chirico <chiricom@google.com>
ben-schwen and others added 4 commits January 13, 2026 23:39
for the case of `is.null(names(jl__))` this should result in `logical(0)` differently from current version which returns `c(FALSE, FALSE, ...)`

Co-authored-by: Michael Chirico <chiricom@google.com>
Co-authored-by: Michael Chirico <chiricom@google.com>
Co-authored-by: Michael Chirico <chiricom@google.com>
# Case 2b: list(...)
else if (this[[1L]] == "list") {
# also handle c(lapply(.SD, sum), list()) - silly, yes, but can happen
if (length(this) == 1L) next
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks like this case was never actually tested

Copy link
Member

@MichaelChirico MichaelChirico left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's ready to go! Bravo! Be sure to revisit all the open review threads and then submit when you're happy :)

@MichaelChirico
Copy link
Member

Great news -- as of now, this PR reduces the cyclomatic complexity of [.data.table by 15% (1038 📉 872)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

4 participants